package luj.game.robot.api.action;

public interface RobotBossCommand<P> {

  interface Context {

    <P> P param(RobotBossCommand<P> command);

    Boss boss();
  }

  interface Boss {

    void putData(Object data);

    <D> D getData(Class<D> dataType);

//    <P> CommandService<P> command(Class<? extends RobotBossCommand<P>> cmdType);
  }

  void onExecute(Context ctx);
}
